package com.IUT.biblio;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.IUT.biblio.model.*;

public class Index extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public void doGet(	HttpServletRequest request, 
			HttpServletResponse response)
			throws IOException, ServletException{
		
		// Creation de l'instance de la bibliothèque
		ServletContext context = getServletContext();
		String nomfich = "Fsauve.ser";
		if(context.getAttribute("biblio")==null){
			Bibliotheque biblio = new Bibliotheque();
			
	//*	Restauration de la biblio
			try {
				FileInputStream fichier = new FileInputStream(nomfich);
				ObjectInputStream in = new ObjectInputStream(fichier);
	
				biblio = (Bibliotheque) in.readObject();
				
				request.setAttribute("texte", "$$$ lecture dans le fichier " + nomfich + " realisée");
			} catch (Exception e) {
				request.setAttribute("error", e.getMessage());
				request.getRequestDispatcher("error.jsp").forward(request, response);
//*
				try {
					FileOutputStream f = new FileOutputStream(nomfich);
					ObjectOutputStream out = new ObjectOutputStream(f);
	
					out.writeObject(biblio);
					request.setAttribute("texte", "$$$ Sauvegarde dans le fichier " + nomfich + " realisée");
				} catch (Exception e2) {
					request.setAttribute("texte", " *** Start : problème de sauvegarde dans le fichier " + nomfich + ".");
				}//*/
			}
			context.setAttribute("biblio", biblio);
		}
		
		if(request.getAttribute("save")!=null){
			try {
				
				FileOutputStream f = new FileOutputStream(nomfich);
				ObjectOutputStream out = new ObjectOutputStream(f);

				out.writeObject((Bibliotheque)context.getAttribute("biblio"));
				request.setAttribute("texte", "$$$ Sauvegarde dans le fichier " + nomfich + " realisée");
				request.setAttribute("save", null);
			} catch (Exception e2) {
				request.setAttribute("texte", " *** Start : problème de sauvegarde dans le fichier " + nomfich + ".");
			}
		}
//*/		
		request.getRequestDispatcher("debut.jsp").forward(request, response);


	}	
	
	public void doPost(	HttpServletRequest request, 
			HttpServletResponse response)
			throws IOException, ServletException{

		doGet(request, response);		
	}
}
